
package library;

import java.util.Arrays;
import library.holdings.*;


public class Library {

	private Holding[] holdings;
	private int count;

	public Library(int capacity) {
		if (capacity < 0) {
			throw new IllegalArgumentException("bad capacity");
		}
		holdings = new Holding[capacity];
		count = 0;
	}

	public boolean contains(Holding holding) {
		for (int i=0; i < count; ++i) {
			if (holdings[i].equals(holding)) {
				return true;
			}
		}
		return false;
	}

	public void add(Holding holding) {
		if (holding == null) {
			throw new IllegalArgumentException("bad holding");
		}
		if (!contains(holding)) {
			if (count < holdings.length) {
				holdings[count] = holding;
				++count;
				Arrays.sort(holdings, 0, count);
			}
		}
	}

	public String toString() {
		String result = "Library:\n";
		for (int i=0; i < count; ++i) {
			result += ("\t" + holdings[i].toString() + "\n");
		}
		return result;
	}

	public void printTitles() {
		for (int i=0; i < count; ++i) {
			System.out.println(holdings[i].getTitle());
		}
	}

	public static void main(String[] args) {
		Library library = new Library(1000);

		Book book = new Book("QA 76.7", "War and Peace", 1000);
		Video video = new Video("ST abc.123 1987", "Pirates of Silicon Valley", 105);
		library.add(book);
		library.add(video);
		library.add(book);
		library.add(video);

		System.out.println(library.toString());
		//library.printTitles();
	}

}

